"""
0.使用了虚拟环境
1.安装了requests、beautifulsoup
2.基于这两个库来编写基本的爬虫
"""
import requests
from bs4 import BeautifulSoup
import pymongo

url = "http://47.103.13.124:8001/base"

cookies = {
    'session': '.eJyrViotTi1SsqpWyiyOT0zJzcxTsjLQUcrJTwexSopKU3WUcvOTMnNSlayUDM3gQEkHrDE-M0XJyhjCzkvMBSmKKTVNMjMDkiamFkq1tQDfeR3n.YKXKWQ.QcA_zWfTFZFGlGik_5milrY3gRA'
}

client = pymongo.MongoClient(host='localhost', port=27017)
db = client.crawler
collection = db.demo1

# 发送请求，获得HTML
r = requests.get(url, cookies=cookies)

# 解析HTML
soup = BeautifulSoup(r.text, 'lxml')
# 获得HTML中，class中有movie-list的div标签
# find() 或 find_all() 方法是可以链式操作
movie_list = soup.find('div', class_='movie-list').find_all('a')
datas = []
for movie in movie_list:
    # attrs 获得标签tag的所有属性，返回是dict
    img_url = movie.find('img').attrs.get('src')
    title = movie.find('h5').get_text()
    desc = movie.find('p').get_text()
    score = movie.find('small').get_text()
    # find_next_sibling() 获得当前节点下一个兄弟节点
    # 兄弟节点 与 子节点
    # 兄弟节点： 同一层
    # 子节点： 在父节点下一层
    desc2 = movie.find('small').find_next_sibling('small').get_text()
    datas.append({
        'img_url': img_url,
        'title': title,
        'desc': desc,
        'score': score,
        'desc2': desc2
    })
# 将数据插入 mongo 中
collection.insert_many(datas)
print('crawler done.')